package com.service.base.generator.gencore.genconfig;


import com.service.base.generator.gencore.dbconfig.rules.DateType;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author wangyongkun
 * @create 2020/12/13
 */
@Data
@Accessors(chain = true)
public class GlobalConfig {

    /**
     * 生成文件的输出目录【默认 D 盘根目录】
     */
    private String outputDir = "D://";

    /**
     * 是否覆盖已有文件
     */
    private boolean fileOverride = false;

    /**
     * 是否打开输出目录
     */
    private boolean open = true;

    /**
     * 是否在xml中添加二级缓存配置
     */
    private boolean enableCache = false;

    /**
     * 开发人员
     */
    private String author;

    /**
     * 开启 Kotlin 模式
     */
    private boolean kotlin = false;

    /**
     * 开启 swagger2 模式
     */
    private boolean swagger2 = false;

    /**
     * 开启 ActiveRecord 模式
     *  也是一种orm映射模式
     */
    private boolean activeRecord = false;

    /**
     * 开启 BaseResultMap
     */
    private boolean baseResultMap = false;

    /**
     * 时间类型对应策略
     */
    private DateType dateType = DateType.TIME_PACK;

    /**
     * 开启 baseColumnList
     */
    private boolean baseColumnList = false;
    /**
     * 各层文件名称方式，例如： %Action 生成 UserAction
     */
    private String entityName;
    private String mapperName;
    private String xmlName;
    private String serviceName;
    private String serviceImplName;
    private String controllerName;
    /**
     * API层类名称
     */
    private String apiName;
    private String apiImplName;
    /**
     * SERVICE和API层使用的实体类: TO自定义名字
     */
    private String entityToName;
    /**
     * API层使用的实体类: VO自定义名字
     */
    private String entityVoName;
    /**
     * SERVICE和DAO层使用的实体类: DTO自定义名字
     */
    private String entityDtoName;

    private String entityBoName;

    private String serviceCopierName;

    private boolean idIsShow = false;

    private boolean domainPkg = false;
}
